Academic Year/course:
2021/22
615 - Máster Universitario en Robótica, Gráficos y Visión por Computador / Robotics, Graphics and Computer Vision
69154 - Programming and Architecture of Computing Systems
Syllabus Information
Academic Year:
2021/22
Subject:
69154 - Programming and Architecture of Computing Systems
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
615 - Máster Universitario en Robótica, Gráficos y Visión por Computador / Robotics, Graphics and Computer Vision
ECTS:
6.0
Year:
1
Semester:
First semester
Subject Type:
Compulsory
Module:
---
1.1. Aims of the course
The main objective of the course is to provide students with knowledge about computer systems from hardware to software, with special emphasis on the most important aspects for robotics, graphics, and computer vision applications. Specifically, the different levels of abstraction will be studied including applications, libraries and runtimes, operating systems. Also, students will learn some knowledge on hardware design, including the differences between devices such as CPUs, GPUs, FPGAs, or ASIC accelerators. The course will present analytical models of the most relevant metrics in computing and how to use them for analyzing performance or energy consumption, among other fundamental aspects, as well. Another important objective is to train students to know how to efficiently use different programming models according to their needs and notions of parallelism and heterogeneous computing, in addition to knowing different program optimization techniques and analysis tools.
These approaches and objectives are aligned with some of the Sustainable Development Goals, SDG, of the 2030 Agenda (https://www.un.org/sustainabledevelopment/es/) and certain specific goals, in such a way that the acquisition of the Learning outcomes of the subject provides training and competence to the student to contribute to a certain extent to their achievement:
- Goal 7: Ensure access to affordable, safe, sustainable and modern energy for all
- Target 7.3: By 2030, double the global rate of improvement in energy efficiency
- Objective 9: Industry, innovation and infrastructure
- Target 9.5 Increase scientific research and improve the technological capacity of the industrial sectors of all countries
- Target 9.c Significantly increase access to information and communication technology
1.2. Context and importance of this course in the degree
This course will allow the student to tackle the design and implementation of applications knowing how to choose the language and programming model, as well as the computing device. Such endeavour will be done taking into account the application requirements and the limitations imposed by the environment or by the chosen system itself. Therefore, this subject will be very useful when dealing with the implementation of any assignments in the rest of the master's subjects as well as in the final diploma thesis.
1.3. Recommendations to take this course
This course does not enforce any requirement, but it is recommended to have notions of programming and preferably also some knowledge of computer architecture and programming models, although such knowledge is not essential.
2.1. Competences
In this subject, the student will acquire the following basic and general competences:
- CB6 – To possess and understand knowledge that provides a basis or opportunity to be original in the development and / or application of ideas, often in a research context.
- CB7 - That students know how to apply the acquired knowledge and ability to solve problems in new or little-known settings within broader (or multidisciplinary) contexts related to their area of study.
- CB8 - That students are able to integrate knowledge and face the complexity of formulating judgments based on information that, being incomplete or limited, includes reflections on the social and ethical responsibilities linked to the application of their knowledge and judgments.
- CB9 - That students know how to communicate their conclusions and the latest knowledge and reasons that support them to specialized and non-specialized audiences in a clear and unambiguous way.
- CB10 - That students possess the learning skills that allow them to continue studying in a way that will have to be largely self-directed or autonomous.
- CG02 - Ability to apply and integrate their knowledge, their understanding, their scientific foundation and their problem-solving abilities in new and imprecisely defined environments, including multidisciplinary contexts, as highly specialized researchers and professionals.
- CG03 - Ability to evaluate and select the appropriate scientific theory and the precise methodology of their fields of study to formulate judgments based on incomplete or limited information, including, when necessary and pertinent, considerations on social or ethical responsibility linked to the solution that is proposed in each case.
- CG04 - Ability to predict and control the evolution of complex situations by developing new and innovative work methodologies adapted to the specific scientific / research, technological or professional field, generally multidisciplinary, in which their activity is carried out.
- CG05 - Ability to transmit in English, orally and in writing, in a clear and unambiguous way, to a specialized audience or not, results from scientific and technological research or the most advanced field of innovation, as well as the most relevant foundations on which they are based.
- CG06 – To have developed sufficient autonomy to participate in research projects and scientific or technological collaborations within their subject area, in interdisciplinary contexts and, where appropriate, with a high component of knowledge transfer.
- CG07 - Ability to take responsibility for your own professional development and specialization in one or more fields of study.
- CG08 – To possess the aptitudes, skills and method necessary to carry out multidisciplinary research and / or development work in the fields of Robotics, Graphics and / or Computer Vision.
- CG09 - Ability to use the techniques, skills and tools of Engineering necessary for solving problems of the Robotics, Graphics and / or Computer Vision fields.
- CG11 - Ability to manage and use bibliography, documentation, databases, software and hardware specific to the fields of Robotics, Graphics and / or Computer Vision.
- CG12 - Ability to work in a multidisciplinary group and in a multilingual environment.
In addition, the student will acquire the following specific skills:
- CE07 - Ability to develop and evaluate software for Robotics, Graphics and Computer Vision problems that can use general and / or specific purpose architectures.
- CE10 - Ability to understand the operation of different computing devices.
- CE11 - Ability to apply mathematical methods to model, design, develop and analyze performance-oriented computer systems.
- CE12 - Ability to understand and apply programming models and specific purpose languages to Robotics, Graphics or Computer Vision applications.
2.2. Learning goals
Upon completion of the course, students must be able to:
- Know the main characteristics of the different computing devices
- Know the main programming models in heterogeneous systems
- Evaluate the benefits of a computer system in terms of performance and energy
- Understand computer solutions (hardware and software) for problems with requirements such high computation intensity, latency, power ...
- Choose the most suitable device and programming model for different types of problems in vision, robotics, and graphics applications
- Design conscious algorithms of computing devices, performance, and energy consumption
2.3. Importance of learning goals
To carry out their work during the master's degree and afterwards, it is paramount that students are able to know both possible computing devices and the respective programming models to design correct and efficient solutions. Said results will be reached once the competences of the subject have been acquired.
3. Assessment (1st and 2nd call)
3.1. Assessment tasks (description of tasks, marking system and assessment criteria)
The evaluation will consist of multiple parts, and several of these will be evaluated continuously. Specifically, the following test types will be carried out:
- Theoretical-practical written tests (weight 60%)
- Delivery of directed work (weight 30%)
- Presentations and debates (weight 10%)
Successful completion of the course requires obtaining an overall score equal to or greater than 5 out of 10 points in the sum of the parts and a rating equal to or greater than 4.5 in each of the individual parts. Failure to comply with these requirements assumes a maximum overall rating of less than or equal to 4.5.
4. Methodology, learning tasks, syllabus and resources
4.1. Methodological overview
The learning process followed in this course aims at achieving the learning objectives. For this, various teaching and learning strategies are used, which are detailed below.
Activities with teachers:
- Master class: The instructor presents and explains the content of the class, including examples of theory and practices
- Problem-based learning: Students tackle specific problems on the subject matter in small groups under the supervision of the teacher
- Learning project-based: Students face projects of a certain size and duration in small groups under the supervision of the teacher
- Practical sessions: Any practical activity carried out through collaboration or individually in class
- Laboratory sessions: Activity carried out with specific equipment such as computers with specific hardware
- Tutorials: Students discuss and review materials with the teaching staff
- Assessment activities: The set of written and oral tests necessary for the assessment
Autonomous work:
- Tasks: preparation of seminars, reading of scientific articles, small research projects, documents and presentations to be defend in class publicly or with the teacher
- Laboratories: preparation of activities presented or evaluated in practical sessions
- Theory study and practical cases: preparation of evaluation tests, libraries, readings, problem solving, etc.
- Complementary activities: Optional and voluntary activities such as video viewing, attendance at seminars, workshops, etc.
4.2. Learning tasks
The course includes the following training activities: Master
- Lectures, 30 hours
- Problem solving and cases, 6 hours
- Laboratory practices, 12 hours
- Special practices, 2 hours
- Practical application or research work, 40 hours
- Personalized teacher-student tutoring, 5 hours
- Study, 50 hours
- Assessment tests, 5 hours
4.3. Syllabus
The course will cover the following topics:
- Computer Systems
- Main elements (Application, Libraries, Operating System, Hardware ...)
- Basic tools (compiler, debugger ...)
- General purpose processor architecture, graphic processors (rendering and computation), Programmable devices (FPGAs) and specific accelerators (ASICs)
- Efficiency analysis and metrics in heterogeneous systems (performance and energy)
- Efficiency oriented programming
- Heterogeneous programming models (CUDA, OpenCL ...) and High-Level Synthesis for FPGAs
- Domain Specific Languages for Computer Vision, Robotics, and Graphics
4.4. Course planning and calendar
The course is planned according to the following scheme:
- Theory classes, 2h / week
- Problem classes and practical cases, 1h / week
- Laboratory sessions, 2h / bi-weekly
The exact schedule will be announced in the school and course web pages, including assignment and project presentations dates.
4.5. Bibliography and recommended resources
- Ben Gaster et al., Heterogeneous Computing with OpenCL, Morgan Kaufmann, 2011
- J. Hennesy and D. Patterson, Computer Architecture: A Quantitative Approach (The Morgan Kaufmann Series in Computer Architecture and Design), Morgan Kaufmann, 2017